#pragma once
#include "MyLibrary.h"

#include "MyFlowChart.h"
#include "MyActivityDiagram.h"
#include "MyDataFlowDiagram.h"

#include <iostream>
#include <vector>
using namespace std;

//enum MyColor
//{
//	/*char red[] = {255, 0, 0}, green[] = {0, 255, 0}, yellow[] = {255, 255, 0};
//	char black[] = {0, 0, 0}, white[] = {255, 255, 255};
//	int strokeWidth = 2;*/
//}

class MyFigureDraw
{
private:
	MyGraphics* _graphic;
	MyChart* _chart;
	vector<MyShapes*> _shapes;
	vector<MyEffect*> _effects;

private:
	bool CheckExistEffect(vector<int> &idEffects, int id);
	void SortIncreaseIDEffect(vector<int> &idEffects);

public:
	MyFigureDraw(void);
	MyFigureDraw(MyGraphics* graphic, MyChart* chart, vector<MyEffect*> effects);
	~MyFigureDraw(void);

	// ------- Nhom ham thay doi cac thuoc tinh cua MyFigureDraw --------- 
	void SetGraphic(MyGraphics* graphic);
	void SetChart(MyChart* chart);
	void CreateAllShape();
	void AddEffect(MyEffect* effect);
	void RemoveEffect(int index);

	// ------- Nhom ham cho nguoi dung thay doi yeu cau cua MyFigureDraw --------- 
	void SelectGraphic();
	void SelectChart();
	void SelectEffect();

	// ------- Nhom ham hien thi thong tin ra man hin --------- 
	void ShowInformation();
	void Draw();
};
